
package gameengine;

import java.awt.geom.Point2D;
import java.awt.Point;
import java.awt.Rectangle;

/**
 * Implementa uma sprite estatica com fisica
 * @author Vitor
 */
public class SpriteEstaticaFisica extends Sprite implements IObjetoFisico
{
    private Textura _textura;
    private float _velocidadeX;
    private float _velocidadeY;
    private Point2D _posicao2D;
    
    /**
     * Construtor da classe sprite estatica com suporte a fisica
     * @author Vitor
     * @param textura
     * @param posicao 
     */
    public SpriteEstaticaFisica(Textura textura, Point posicao, float velocidadeX, float velocidadeY)
    {
        super(posicao);
        
        _textura = textura;
        _posicao2D = new Point2D.Float((float)posicao.x ,(float)posicao.y);
        _velocidadeX = velocidadeX;
        _velocidadeY = velocidadeY;
        SetRetanguloDesenho(new Rectangle(0, 0, _textura.GetDimension().width, _textura.GetDimension().height));
    }
    
    @Override
    /**
     * Retorna a textura do sprite
     * @author Vitor
     */
    public Textura GetTextura()
    {
        return _textura;
    }
    
    /**
     * Retorna a velocidade em X
     * @return Velocidade em X
     */
    public float GetVelocidadeX()
    {
        return _velocidadeX;
    }
    
    /**
     * Seta a velocidade em X
     * @param velocidadeX 
     */
    public void SetVelocidadeX(float velocidadeX)
    {
        _velocidadeX = velocidadeX;
    }
    
    /**
     * Pega a velocidade em Y
     * @return Velocidade em Y
     */
    public float GetVelocidadeY()
    {
        return _velocidadeY;
    }
    
    /**
     * Seta a velocidade em Y
     * @param velocidadeY 
     */
    public void SetVelocidadeY(float velocidadeY)
    {
        _velocidadeY = velocidadeY;
    }
    
    /**
     * Retorna a posicao 2D
     * @author Vitor
     * @return Posicao 2D para calculo de fisica
     */
    public Point2D GetPosicao2D()
    {
        return _posicao2D;
    }
    
    /**
     * Seta a posicao 2D
     * @author Vitor
     * @param posicao 
     */
    public void SetPosicao2D(Point2D posicao)
    {
        _posicao2D = posicao;
    }
    
}
